/**
 * LeetCode46：全排列
 * 给定一个没有重复数字的徐柳，返回其所有可能的全排列
 */

/**
 *
 * @param {number[]} nums
 * @return {number[][]}
 */
var permute = function (nums){
    const res = [];
    const backtrack = (path) => {
        if (path.length === nums.length){
            res.push(path);
            return;
        }
        nums.forEach(n => {
            if (path.includes(n)){return;}
            backtrack(path.concat(n));
        });
    };
    backtrack([]);
    return res;
}

//时间复杂度：O(n!)
//空间复杂度：O(n)